<?php

$config = Config::getInstance();

$controller = $config->currentController;

$withOperations = true; 

$isAdmin    = $_SESSION[SESSION_PERFIL_FUNC] == PERFIL_ADMINISTRADOR;
$isDiretor  = $_SESSION[SESSION_CARGO_FUNC] == CargoModel::COD_DIRETOR;
$isGerente  = $_SESSION[SESSION_CARGO_FUNC] == CargoModel::COD_GERENTE || $_SESSION[SESSION_PERFIL_FUNC] == PERFIL_GERENTE;

$can_see_value  = $isAdmin;

$byLoja         = $isGerente ? $_SESSION[SESSION_LOJA_FUNC] : false;

$centrais = $controller->getAllCentraisEstoque($byLoja, true);

if(!empty($centrais)){
    
    echo title_form("Lista de Operações na Central de Estoque", "h3");
    
    $headers = array( "data" => "Data",
                      "lojaOrigem" => "Origem",
                      "lojaDestino" => "Destino",
                      "valor" => "Valor",
                      "status" => "Status",
                      "usuarioEstoque" => "Operador");
    
    if(!$can_see_value) { unset($headers["valor"]); }
    
    if($withOperations) {
        $headers["operations"] = "Operações";
        $img_del    = grid_icon('remover.png', 'Remover Operação'); 
        $img_edit   = grid_icon('editar.png', 'Editar Operação'); 
        $img_aprov  = grid_icon('aprovar.png', 'Aprovar Entrada no Estoque'); 
        $img_view   = grid_icon('visualizar.png', 'Ver operação de Estoque');
        
        for($i = 0, $l = count($centrais); $i < $l; $i++){
            $vars = get_object_vars($centrais[$i]);
            
            $ownerLojaOrigin = $vars["lojaOrigem"] == $_SESSION[SESSION_LOJA_SIGLA_FUNC];
            $ownerLojaDestin = $vars["lojaDestino"] == $_SESSION[SESSION_LOJA_SIGLA_FUNC];
            
            $link_aprova = $link_del = $link_edit = "";
            $service     = "'ajax.php?code=7500&central=".$vars['id']."&type=html'";
            $link_view   = js_link("openViewDataMode($service)", $img_view); 
            if(($vars["status"] == CentralEstoqueModel::STATUS_PROBLEMAS || 
                $vars["status"] == CentralEstoqueModel::STATUS_PENDENTE) && 
                ($isDiretor || $isAdmin))
            {
                $link_edit = js_link("openEditCentralEstoqueMode({$vars["id"]})", $img_edit);
            }
            if($vars["status"] == CentralEstoqueModel::STATUS_PENDENTE && ($ownerLojaOrigin || $isDiretor || $isAdmin)){
                $link_del = a_link("?op=del_central&central={$vars["id"]}", $img_del);
            }
            if($vars["status"] == CentralEstoqueModel::STATUS_PENDENTE && $isGerente && $ownerLojaDestin)
            {
                $link_aprova = js_link("openAproveMode({$vars["id"]})", $img_aprov);
            }
            if(empty($vars["lojaOrigem"])) { $vars["lojaOrigem"] = "FORNECEDOR"; }
            $vars["operations"] = "$link_del $link_edit $link_aprova $link_view";
            $vars["data"]       = $config->maskData($vars["data"]);
            if($can_see_value) {
                $vars["valor"]      = $config->maskDinheiro($vars["valor"]);
            } else {
                unset($vars['valor']);
            }
            $statusClass        = "status status_" . $vars["status"]; 
            $vars["status"]     = "<div class='$statusClass'>".CentralEstoqueController::getTextualStatus($vars["status"])."</div>";
            $centrais[$i]       = (object) $vars;
        }
    }
    
    include_once LISTS."table-generic.php";
    
    $table = new GenericTable($headers, $centrais);
    $table->id = "lista-centrais";
    
    $table->draw();
    
} else {
    echo title_form("Sem Movimentações de Estoque", "h3");
}
if(!empty($centrais)){
?>
<script>
dependencies.push(function(){
    
    var lTable = $("#lista-centrais").dataTable({
        "bPaginate" : true,
        "bJQueryUI" : true,
        "sPaginationType": "full_numbers",
        "aoColumns": [
             { "asSorting": [ "desc", "asc" ]},
             { "asSorting": [ "desc", "asc" ]},
             { "asSorting": [ "desc", "asc" ]},
             <?php if($can_see_value){ ?>
             { "asSorting": [ "desc", "asc" ]},
             <?php } ?>
             { "asSorting": [ "desc", "asc" ], "sWidth":"10%"},
             { "asSorting": [ "desc", "asc" ]},
             <?php if($withOperations){ ?>{ "asSorting": [] }, <?php } ?>
        ],
        "sScrollY": "250px",
        "bScrollCollapse": false
    });       

    lTable.$('tr').hover( function() {
        $(this).addClass('highlighted');
    }, function() {
       lTable.$('tr.highlighted').removeClass('highlighted');
    });
});
</script>
<style>
.status {font-weight: bolder; padding: 5px}
.status_0{background: lightgoldenrodyellow; color:goldenrod;}
.status_1{background: green; color:white;}
.status_2{background: salmon; color: brown;}
</style>
<?php } ?>
